home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c++-part2 / 18471 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  3.4 KB

  1. Path: ix.netcom.com!news
  2. From: Bradd W. Szonye <bradds@ix.netcom.com>
  3. Newsgroups: comp.lang.c,comp.lang.c++,rec.games.programmer
  4. Subject: RE: ! Read me and State your opinion.
  5. Date: 20 Apr 1996 18:43:26 GMT
  6. Organization: Netcom
  7. Message-ID: <01bb2ee9.57ded6a0$65c2b7c7@Zany.localhost>
  8. References: <4kegoq$f2d$1@mhadg.production.compuserve.com> <4kfle4$haf@newsbf02.news.aol.com> <4kmntl$jc0@texas.nwlink.com> <4kuv1k$ <19960419.132249.755914.NETNEWS@WVNVM.WVNET.EDU>
  9. NNTP-Posting-Host: det-mi3-05.ix.netcom.com
  10. X-NETCOM-Date: Sat Apr 20  1:43:26 PM CDT 1996
  11. X-Newsreader: Microsoft Internet News
  12.  
  13.  
  14. On Friday, April 19, 1996, Myron Brown wrote...
  15. > Vector (cowanb@limestone.kosone.com) wrote:
  16. > :
  17. > : >C is a *middle-level* language.  C++, Pascal, and BASIC are
  18. high-level
  19. > : >languages.  Assembly is a low-level language.  Nobody uses machine
  20. > : >code anymore, except for chip designers.
  21. > : Hmm... okey, C IS middle level,
  22. > : But where the heck do you get off calling C++ HIGH level? Thats like
  23. calling
  24. > : Object oriented Assembler "Middle Level".
  25. >   Actually, C, C++, Pascal, and BASIC are all "high level languages" as
  26. > you put it.  They're 3rd Generation languages, if you want technical
  27. > words.  That's opposed to SAS, Matlab, INFORMIX, etc. which are 4th
  28. > Generation languages (that means that they shelter you more from the
  29. > hardware - for engineers as an example (just kidding)).
  30. > :         C++ is C, with a little extra added on. Dont call it High
  31. level, I
  32. > : consider it an insult.... :) At least call it "A tad above middle
  33. level, but
  34. > : way under high level."
  35. >   I agree.  This kind of categorization of languages is based on levels
  36. > of abstraction from the hardware, and C and C++ are the same in that
  37. respect.
  38. > Myron.
  39.  
  40. Specifically:
  41. 1st generation: machine language
  42. 2nd generation: assembly language
  43. 3rd generation: Ada, BASIC, C/C++, COBOL, FORTRAN, Pascal, etc.
  44. 4th generation: Forth, scripting languages, Smalltalk, SQL, etc.
  45.  
  46. I'm not sure where the functional languages (LISP, ML, etc.) fit in here,
  47. but then we've always had "exceptions" in computer science. Also, there's
  48. some argument as to where to draw the line exactly between 3rd & 4th
  49. generation languages, such as which class Smalltalk fits into. A good
  50. guideline is that portability between machines tends to be a bigger
  51. concern for 3GLs; 4GLs depend more on your vendor's support for the
  52. runtime environment. Which brings up another distinction: traditionally,
  53. 4GLs are interpreted; the actual 4GL "operating system" is an interpretive
  54. layer (like the SQL database engine) that insulates the programmer from
  55. the "real" OS. All of this is of course is subjective.
  56.  
  57. Traditionally, 1GLs and 2GLs are "low-level," 3GLs are "high-level," and
  58. 4GLs are "very high level." Colloquially, programmers refer to C as
  59. "mid-level" (or a 2.5GL) since most of its language constructions reflect
  60. the underlying architecture in a very obvious way. The explicit increment
  61. and decrement operators are a good example of this.
  62.  
  63. Since the C++ OO mechanism hides a lot of system-level details (vtables,
  64. overload resolution, templates, type identification), you could call it
  65. "high-level" or maybe even "very-high-level." On the other hand, its
  66. expression syntax comes from C which is very assembly-like, so you could
  67. call C++ "mid-level." The problem is that C++ is a hybrid, with elements
  68. of 2.5GLs (BCPL, C), 3GLs (Ada, Simula), and 4GLs (ML, Smalltalk). All
  69. this makes C++ very hard to classify.
  70.  
  71.  
  72.